//
//  NSDate+Extension.swift
//  04-时间的处理
//
//  Created by Arvin on 15/11/22.
//  Copyright © 2015年 Arvin. All rights reserved.
//

import Foundation

extension NSDate {
    
    // Sun Nov 22 21:54:43 +0800 2015
    class func createDate(dateString: String) ->NSDate? {
        
        let fm = NSDateFormatter()
        fm.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        return fm.dateFromString(dateString)
    }
    
    /*
    刚刚(一分钟内)
    X分钟前(一小时内)
    X小时前(当天)
    -------------
    
    昨天 HH:mm(昨天)
    MM-dd HH:mm(一年内)
    yyyy-MM-dd HH:mm(更早期)
    */
    
    func fullDscription() -> String {
        let calendar = NSCalendar.currentCalendar()
        var fomatString = ""
        
        if calendar.isDateInToday(self) {
            // 今天
            let delta = Int(NSDate().timeIntervalSinceDate(self))
            
            if delta < 60 {
                return "刚刚"
            } else if delta < 3600 {
                return "\(delta/60)分钟前"
            }
            return "\(delta/3600)小时前"
        } else {
            // 昨天
            if calendar.isDateInYesterday(self) {
                fomatString = "昨天 HH:mm"
            } else {
                
                //非昨天 并且 比昨天还要早的日期
                // unitflay 比较单位
                //fromDate 表示的时需要比较的时间
                //toDate  表示 被比较的时间
                
                let result = calendar.components(.Year, fromDate: self, toDate: NSDate(), options: [])
                
                if result.year == 0 { // 今年
                    fomatString = "MM-dd HH:mm"
                } else { // 更早时间
                    fomatString = "yyyy-MM-dd HH:mm"
                }
                print(result)
            }
        }
        let fm = NSDateFormatter()
        fm.dateFormat = fomatString
        return fm.stringFromDate(self)
    }
    
}